/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package goodsBean;

import DBConnection.ATeamObject;
import java.rmi.RemoteException;
import java.util.Collection;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
import javax.ejb.FinderException;

/**
 * Home Interface for GoodsBean
 * @author XPYCT
 * @see GoodsBean
 */
public interface GoodsHome extends EJBHome {
    
    /**
     * Create new goods
     * @param ato Parameters of new goods
     * @return Remote Interface
     * @throws CreateException
     * @throws RemoteException
     * @see CreateException
     * @see RemoteException
     */
    public Goods create(ATeamObject ato)
            throws CreateException, RemoteException;
    
    /**
     * Find all goods in database.
     * @return Collection of Remote Interfaces
     * @throws FinderException
     * @throws RemoteException 
     * @see FinderException
     * @see RemoteException
     */
    public Collection findAllGoods()
            throws FinderException, RemoteException;
    
    /**
     * Find goods by id of category.
     * @return Collection of Remote Interfaces
     * @throws FinderException
     * @throws RemoteException 
     * @see FinderException
     * @see RemoteException
     */
    public Collection findAllByCategoryId(ATeamObject ato)
            throws FinderException, RemoteException;
    
    /**
     * Find goods by id of manufacturer.
     * @return Collection of Remote Interfaces
     * @throws FinderException
     * @throws RemoteException 
     * @see FinderException
     * @see RemoteException
     */
    public Collection findAllByManufacturerId(ATeamObject ato)
            throws FinderException, RemoteException;
    
    /**
     * Find goods by all criteria.
     * @return Collection of Remote Interfaces
     * @throws FinderException
     * @throws RemoteException 
     * @see FinderException
     * @see RemoteException
     */
    public Collection findByAllCriteria(ATeamObject ato)
            throws FinderException, RemoteException;
    
    
    /**
     * Find goods by id.
     * @return Remote Interface
     * @throws FinderException
     * @throws RemoteException 
     * @see FinderException
     * @see RemoteException
     */
    public Goods findByPrimaryKey(Integer primaryKey)
            throws FinderException, RemoteException;
    
    
    /**
     * Find goods by name.
     * @return Collection of Remote Interfaces
     * @throws FinderException
     * @throws RemoteException 
     * @see FinderException
     * @see RemoteException
     */
    public Collection findByNameEquals(ATeamObject ato)
            throws FinderException, RemoteException;
    
    
    /**
     * Find goods by price.
     * @return Collection of Remote Interfaces
     * @throws FinderException
     * @throws RemoteException 
     * @see FinderException
     * @see RemoteException
     */
    public Collection findByPriceEquals(ATeamObject ato)
            throws FinderException, RemoteException;
        
}
